package com.kingyun.gpsinspection.purificationservice.facade.service.activiti.base;

import com.kingyun.gpsinspection.purificationservice.common.bean.Page;

import java.util.Map;

/**
 * 流程定义以及流程实例相关的service
 * @author zjh
 * @since 20170525
 */
public interface WorkflowProcessDefinitionService {







    /**
     * 得到所有的流程定义
     * @param page 分页参数
     * @return
     */
    Page getProcessDefinitionByPage(Page page);


    /**
     * 根据流程定义ID得到流程定义对象
     * @param processDefinitionId
     * @return
     */
    Map<String,Object> getProcessDefinitionByProcessDefinitionId(String processDefinitionId);


    /**
     * 得到流程图片
     * @param processDefinitionId 流程定义ID
     * @return
     */
    byte[] getProcessDefinitionDiagram(String processDefinitionId) throws Exception;


    /**
     * 发布流程定义
     * @param bytes
     * @return
     */
    Map<String,Object> deploy(byte[] bytes);

    /**
     * 删除已经部署的流程定义
     * @param deploymentId 流程部署id
     * @param cascade 是否级联删除
     * @return
     */
    Map<String,Object> deleteDeployment(String deploymentId,boolean cascade);



}
